{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### EAO - easy and straight forward optimization of energy setups" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Import required packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os, sys\n", "# in case eao is not installed, set path\n", "myDir = os.path.join(os.getcwd(), '../..')\n", "sys.path.append(myDir)\n", "addDir = os.path.join(os.getcwd(), '../../../..')\n", "sys.path.append(addDir)\n", "import eaopack as eao\n", "import pandas as pd\n", "import datetime as dt\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Load data & make assumptions\n", "In this case we load a year of hourly power market data for Germany. Downloaded from smard.de (Bundesnetzagentur | SMARD.de); 01/11/2023 - 01/11/2024. We will use day ahead prices as well as PV production profiles. In addition we will use a standard load profile of German commercial consumers.\n", "\n", "We make some basic assumptions on grid fees for commercial consumers (actual example for 2025 in the medium voltage grid) and define the characteristics on site: yearly consumption, own PV and battery." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data = pd.read_excel('DE_dataset.xlsx')\n", "data.set_index('Date', inplace=True)\n", "\n", "### at > 2500 FLH\n", "grid_fees = {}\n", "grid_fees['fix'] = 166000 # €/MW\n", "grid_fees['var'] = 13 # €/MWh\n", "\n", "######################### settings\n", "cons = 500 # MWh # total consumption per year (scaling the profile)\n", "cap_pv = 0.25 # MW (1000 flh) capacity of the on-site PV\n", "battery_data = {} # capacity, size and efficiency of an on-site battery\n", "battery_data['cap'] = .25 # 250 kW\n", "battery_data['size'] = 2 * battery_data['cap'] # 2 hours\n", "battery_data['eff'] = 0.9 # 90% cycle efficiency" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the actual optimization we need to do some settings: Defining the time grid for optimization and defining which data to use in our assets." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "######## prepare everything\n", "## basics\n", "S = dt.date(2023,11,1)\n", "E = dt.date(2024,11,1)\n", "timegrid = eao.Timegrid(S, E, freq = 'h') # hourly\n", "\n", "## settings\n", "input_ts = pd.DataFrame()\n", "input_ts['cons'] = -data['SLP gewerbe']*cons\n", "input_ts['pv'] = data['pv profile']*cap_pv\n", "input_ts['price'] = data['price dah']\n", "\n", "# cast to timegrid\n", "input_ts = timegrid.prices_to_grid(input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we define the structure of our optimization problem -- our portfolio. The assets may be physical assets such as the battery or contracts such as supply via the grid." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "### Structural setup, distinguishing own assets and supply from the grid\n", "behind_meter = eao.Node('behind meter')\n", "front_of_meter = eao.Node('front of meter')\n", "\n", "### Here: No flexibility in our consumption. Easily changed by adjusting min_cap/max_cap\n", "consumption = eao.assets.SimpleContract(name = 'consumption', \n", " nodes = behind_meter,\n", " min_cap = 'cons',\n", " max_cap = 'cons')\n", "### Our own PV module. Also here without flexibility -- easily changed\n", "pv = eao.assets.SimpleContract(name = 'pv', \n", " nodes = behind_meter,\n", " min_cap = 'pv',\n", " max_cap = 'pv')\n", "### An on-site battery constituting out flexibility\n", "battery = eao.assets.Storage( name = 'battery',\n", " nodes = behind_meter,\n", " cap_in = battery_data['cap'],\n", " cap_out = battery_data['cap'], \n", " eff_in = battery_data['eff'],\n", " size = battery_data['size'],\n", " start_level= 0.5 * battery_data['size'],\n", " end_level = 0.5 * battery_data['size'],\n", " block_size = 'd', # daily optimization of battery (leaving it 1/2 full every day)\n", " no_simult_in_out = False) # Important: The battery may now charge and discharge at the same time and\n", " # \"burn\" power due to efficiency < 100%. This makes computation much faster (no MIP)\n", "\n", "### Supply via the grid. Note that we enabling scaling the grid connection -- since grid fees \n", "# apply on a yearly basis for the maximum load (which we will minimize utilizing our battery)\n", "supply = eao.assets.SimpleContract( name = 'supply', \n", " nodes = front_of_meter, \n", " price = 'price',\n", " extra_costs = .5, # fee from supplier\n", " min_cap = 0,\n", " max_cap = 1)\n", "grid_feedin = eao.assets.Transport( name = 'grid_out', # unlimited feed in capacity\n", " nodes = [behind_meter, front_of_meter],\n", " min_cap = 0,\n", " max_cap = 1)\n", "grid_consumption_normed = eao.assets.Transport(name = 'grid_in_normed', \n", " nodes = [front_of_meter, behind_meter],\n", " costs_const = grid_fees['var'], # variable grid fees\n", " min_cap= 0,\n", " max_cap= 1) # normed capacity (to 1 MW)\n", "grid_consumption = eao.assets.ScaledAsset(name = 'grid_in',\n", " base_asset = grid_consumption_normed,\n", " max_scale = 1000,\n", " fix_costs = grid_fees['fix']/8760) # yearly fix capacity costs (here scaled to hourly as main time unit)\n", "### We can feed in our PV own production - here at day ahead prices. If there are feed-in tariffs, price can easily be changed\n", "feedin = eao.assets.SimpleContract(name = 'feedin', \n", " nodes = front_of_meter, \n", " price = 'price', # assuming no feed in tariff\n", " min_cap = -1000,\n", " max_cap = 0)\n", "portf = eao.Portfolio([supply, consumption, grid_feedin, grid_consumption, pv, feedin, battery])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is how the portfolio looks like. See below. We could set it up in a simpler way (without distinction into in-front-of-the-meter and behind-the-meter). However, this way everything becomes very explicit in formulation as well as later analysis." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGbCAYAAABZBpPkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABr8ElEQVR4nO3deVxU9f7H8des7MiOO4sLoCAYLii4pKapZWZpe1m2L15bbmb109vtlu2WdcvKrlm2m0urlmYmiLsICiIoKIgssu/DzJzfH8Qk4S4wwHyej8d93Dhz5pzPGUbmPd/zXVSKoigIIYQQwmaprV2AEEIIIaxLwoAQQghh4yQMCCGEEDZOwoAQQghh4yQMCCGEEDZOwoAQQghh4yQMCCGEEDZOwoAQQghh4yQMCCGEEDZOwoAQF2HmzJk4Oztbu4xm1RzX9OqrrxIYGIhGoyEiIqJ5CmsHPv30U4KDg9HpdLi5uV3Qc2fOnIm/v3+jbSqVin/961/NVp8Q5yJhQDSLjz/+GJVKhb29PcePH2/y+OjRowkNDb2oY3/++ee8+eabl1ihaGm//PILTz75JNHR0SxbtowXX3zR2iU1m5ycHP71r3+RkJDQ5LGDBw8yc+ZMevXqxYcffsgHH3zQ+gUKcYm01i5AdCy1tbW89NJLvP322812zM8//5z9+/czZ86cZjumaH6//fYbarWajz76CL1eb+1ymlVOTg7PPfcc/v7+TVo8fv/9d8xmM2+99Ra9e/dulvNVV1ej1cqfZ9F6pGVANKuIiAg+/PBDcnJyrF1Ki6isrLTq+Y1GIwaDwao1nEl+fj4ODg7NFgQURaG6urpZjnWxzuf1zs/PB7jg2wNnY29vL2FAtCoJA6JZPf3005hMJl566aXz2n/FihVERkbi4OCAh4cHN954I1lZWZbHR48ezY8//sjRo0dRqVSoVCr8/f1RFAUvLy8ee+wxy75msxk3Nzc0Gg0lJSWW7S+//DJarZaKigrLtt9++40RI0bg5OSEm5sb11xzDSkpKY1q+9e//oVKpSI5OZmbb74Zd3d3YmJizngtCQkJeHt7M3r06EbnOp1vvvmGfv36YW9vT2hoKKtXr25y7zgzMxOVSsVrr73Gm2++Sa9evbCzsyM5ORmDwcD8+fOJjIykU6dOODk5MWLECDZt2tToPKceY9GiRfj5+eHg4MCoUaPYv3//aWs7fvw4U6dOxdnZGW9vb5544glMJtNZr0elUrFs2TIqKystv6ePP/4YqP9Aff755y31+/v78/TTT1NbW9voGP7+/lx11VWsX7+eQYMG4eDgwPvvv3/Gczbcetq9ezfDhw/HwcGBgIAAlixZ0mTf/Px8Zs2aha+vL/b29oSHh7N8+fIzvlanvt7vvvsugwcPBuDOO+9sdH3+/v4sWLAAAG9v7yb3+t9991369++PnZ0dXbt25aGHHmr03jzb6/n3PgN79+5l4sSJuLq64uzszNixY9m2bds5jyXE+ZDoKZpVQEAAt99+Ox9++CFPPfUUXbt2PeO+L7zwAv/3f//HjBkzuPvuuykoKODtt99m5MiR7N27Fzc3N5555hlKS0vJzs5m0aJFADg7O6NSqYiOjuaPP/6wHC8xMZHS0lLUajVxcXFMnjwZgC1btjBw4EBL57gNGzYwceJEAgMD+de//kV1dTVvv/020dHR7Nmzp0lnrunTp9OnTx9efPFFzrTi986dO5kwYQKDBg1i7dq1ODg4nPG6f/zxR2644QbCwsJYuHAhxcXFzJo1i27dup12/2XLllFTU8O9996LnZ0dHh4elJWVsXTpUm666SbuueceysvL+eijj5gwYQI7duxo0pT9ySefUF5ezkMPPURNTQ1vvfUWY8aMISkpCV9fX8t+JpOJCRMmMHToUF577TU2bNjA66+/Tq9evXjggQfOeE2ffvopH3zwATt27GDp0qUADB8+HIC7776b5cuXc/311/P444+zfft2Fi5cSEpKCqtXr250nNTUVG666Sbuu+8+7rnnHoKCgs54ToDi4mImTZrEjBkzuOmmm/j666954IEH0Ov13HXXXUB9k/vo0aNJT0/n4YcfJiAggG+++YaZM2dSUlLCP/7xj7O+3tdeey3l5eXMnz+fe++9lxEjRliu78033+STTz5h9erVvPfeezg7OzNgwACgPkw+99xzjBs3jgceeIDU1FTee+89du7cSVxcHDqd7qzXdqoDBw4wYsQIXF1defLJJ9HpdLz//vuMHj2azZs3M3To0PM+lhCnpQjRDJYtW6YAys6dO5XDhw8rWq1WmT17tuXxUaNGKf3797f8nJmZqWg0GuWFF15odJykpCRFq9U22j558mTFz8+vyTlfffVVRaPRKGVlZYqiKMrixYsVPz8/ZciQIcrc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8f333zN69GhWrFiBi4sLDz/8MH369AGathT4+PiwdOlSpk6dSkREBElJSTg7O1smQfLz80Or1VJbW9voeT169OC6667jueeeY968eWddnVBRFCorK3Fzc5MwIIQ4Jxla2EI+/fRTjhw5QlRUFBMmTLB2OeIS5OXlMXPmTO677z4mTZrEK6+8wvLly/n555+54ooreP7557n11lsxGo3s3LmTJUuWMH36dK666irLMRRFwWw2W24nlJeXW2YXXLNmDfPmzSMlJcWy77p16zh8+PBFTzxUVVWFyWRi0qRJLT5/ghCi/ZPRBC1gw4YNHDlyBD8/PwkC7VxFRQU6nY7nnnuO//znP2zbto1Fixbx0UcfsWLFCiIjI5k+fToAWq2W4uJi9u7dy0svvQRAdnY2FRUVBAcHo9Fo+PTTT8nMzESj0fDVV19hMplwdXXls88+s5xTpVIRHR1NQUEBxcXFuLu7X1AgqK2tpbq6mssuuwyNRkNSUhKhoaFWmztBCNH2SctAMztw4AArV67E1dWVf/zjH9JhsJ3bs2cPCxYsYPTo0dx000288847rF69ms2bN9O3b1++/vprxo8fD0BhYSFz5szBz8+P//znP6xYsYJ33nmHyspKunfvzvLlyxk0aBD/+Mc/ePzxxzGbzWd9fxw/fpxff/2ViooKOnXqdMbbAqWlpbz00kuW1gdFUbCzs2Pq1KnceuutfPfdd+j1esLCwvD398fLywtPT89WWdpZCNE+SBhoRvn5+SxZsgSNRsOcOXNktbgOIj8/n5dffpkNGzYwduxYRowYwdSpU5k/fz5z5861rIL4+++/8+ijj7Ju3Tr27NnD0qVLufLKK7nnnntYvnw5a9euZevWreTm5p73ufPy8tiyZQu5ublotVqcnJzQaDSNvuUrikJNTQ1VVVXY2dkRFhbGoEGDLOFh8+bN/P77702O7ezsTPfu3Zk2bZoEAyFsnISBZlJTU8OiRYuoq6vjrrvukvu0HVBtbS16vf60ze0lJSU88MADODs78+GHH/LCCy9QXFzMSy+9hFar5dChQ/Tr148333yThx9+GKPReNYOgKcyGAwcOHCAlJQUSktLG81poFKpLC0BPXr0YMCAAXTt2rXJMT755BMyMjKabHdycmLOnDnnXYsQomOSvwDNwGw28+GHH2IwGLj66qslCHRQp/bK/3sTv5OT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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eao.network_graphs.create_graph(portf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Optimization\n", "\n", "The actual optimization is very simple. We collect all assets in the portfolio object and go. \"extract_output\" will generate straight-forward tables that can also be exported to Excel. Note that we are optimizing a full year on an hourly basis including a battery. This takes ~1 min." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Values\n", "Parameter \n", "status successful\n", "value -29974.687926\n" ] } ], "source": [ "out = eao.optimize(portf=portf, timegrid=timegrid, data=input_ts)\n", "print(out['summary'])\n", "eao.io.output_to_file(output=out, file_name='test.xlsx') ### All details. Have look into the file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Defining the benchmark to calculate the value of the battery: The same portfolio without the battery" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "portf_benchmark = eao.portfolio.Portfolio([supply, consumption, grid_feedin, grid_consumption, pv, feedin])\n", "out_benchmark = eao.optimize(portf=portf_benchmark, timegrid=timegrid, data=input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Interpretation of the results\n", "\n", "Let us analyze the overall costs with and without battery and look into the dispatch behaviour" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overall costs with battery: 29975\n", "Overall costs without battery: 49494\n", "So the battery saved us: 19519\n" ] } ], "source": [ "print('Overall costs with battery: '+ str(round(-out['summary'].loc['value', 'Values'])))\n", "print('Overall costs without battery: '+ str(round(-out_benchmark['summary'].loc['value', 'Values'])))\n", "print('So the battery saved us: '+ str(round(out['summary'].loc['value', 'Values'] - out_benchmark['summary'].loc['value', 'Values'])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a significant saving. But where does the saving come from? Let us look into the details, starting with the overall quantities. See below. Note how quantities are always balanced at nodes. Transport always balances as well -- transporting from one node to the other.\n", "\n", "Check out the output \"out\" in detail. It contains detailed dispatch, cash flows and internal variables such as battery fill levels." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Quantities (MWh) with battery:\n", ".................................... \n", "supply (front of meter) 376.0\n", "consumption (behind meter) -500.0\n", "grid_out (behind meter) -103.0\n", "grid_out (front of meter) 103.0\n", "grid_in (front of meter) -376.0\n", "grid_in (behind meter) 376.0\n", "pv (behind meter) 250.0\n", "feedin (front of meter) -103.0\n", "battery (behind meter) -23.0\n", "dtype: float64\n", "\n", "Quantities (MWh) without battery:\n", ".................................... \n", "supply (front of meter) 310.0\n", "consumption (behind meter) -500.0\n", "grid_out (behind meter) -60.0\n", "grid_out (front of meter) 60.0\n", "grid_in (front of meter) -310.0\n", "grid_in (behind meter) 310.0\n", "pv (behind meter) 250.0\n", "feedin (front of meter) -60.0\n", "dtype: float64\n" ] } ], "source": [ "print('Quantities (MWh) with battery:\\n.................................... \\n'+str(round(out['dispatch'].sum())))\n", "print()\n", "print('Quantities (MWh) without battery:\\n.................................... \\n'+str(round(out_benchmark['dispatch'].sum())))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Costs (EUR) with battery:\n", ".................................... \n", "supply -26178.0\n", "consumption 0.0\n", "grid_out 0.0\n", "grid_in -15948.0\n", "pv 0.0\n", "feedin 12152.0\n", "battery 0.0\n", "dtype: float64\n", "Total: -29975.0\n", "\n", "Costs (EUR) without battery:\n", ".................................... \n", "supply -27711.0\n", "consumption 0.0\n", "grid_out 0.0\n", "grid_in -22788.0\n", "pv 0.0\n", "feedin 1006.0\n", "dtype: float64\n", "Total: -49494.0\n", "\n" ] } ], "source": [ "print('Costs (EUR) with battery:\\n.................................... \\n'+str(round(out['DCF'].sum())))\n", "print('Total: '+ str(out['DCF'].sum().sum().round())+'\\n')\n", "print('Costs (EUR) without battery:\\n.................................... \\n'+str(round(out_benchmark['DCF'].sum())))\n", "print('Total: '+ str(out_benchmark['DCF'].sum().sum().round())+'\\n')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two contributions:\n", "* supply & PV: we are utilizing the battery to maximize own consumption, mainly to avoid variable grid fees\n", "* battery & grid: we try to minimize peak load (capacity fee)\n", "* battery arbitrage: utilizing the battery to consume from grid in cheap hours and feed in in expensive hours\n", "\n", "Everything is optimized in a consistent manner in one go!\n", "\n", "The grid connection is a special case: Besides avoiding variable grid fees, we're sizing the capacity over the course of the year, utilizing the battery to reduce peaks. Here the results. \"Value\" gives the required capacity:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Grid fixed costs (EUR) with battery:\n", ".................................................. \n", " asset variable name value costs\n", "0 grid_in size scale 0.066 11058.95\n", "\n", "Grid fixed costs (EUR) without battery:\n", ".................................................. \n", " asset variable name value costs\n", "0 grid_in size scale 0.113 18754.337\n" ] } ], "source": [ "print('Grid fixed costs (EUR) with battery:\\n.................................................. \\n'+str(out['special'].round(3))+'\\n')\n", "print('Grid fixed costs (EUR) without battery:\\n.................................................. \\n'+str(out_benchmark['special'].round(3)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Another benchmark: Own PV\n", "To make the picture more complete, let us add another step in the benchmark: to compute the value of the own PV (i.e. a portfolio without PV and battery as the overall starting point)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "portf_start = eao.portfolio.Portfolio([supply, consumption, grid_feedin, grid_consumption, feedin])\n", "out_start = eao.optimize(portf=portf_start, timegrid=timegrid, data=input_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Putting everything together\n", "\n", "Let us now put all the data together to analyze the effects of our PV and battery assets. Naturally, we could also do this in Excel, using the output generated by the optimization. This may feel more natural to many users." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "## bookkeeping - looking at cost components in different scenarios. Attention - costs are negative numbers\n", "start = -out_start['summary'].loc['value', 'Values'] # no assets\n", "with_pv = -out_benchmark['summary'].loc['value', 'Values'] # PV, no battery\n", "saving_supply = -((out_benchmark['DCF']['supply'].sum() + out_benchmark['DCF']['feedin'].sum())- (out['DCF']['supply'].sum() + out['DCF']['feedin'].sum()))\n", "saving_grid = -(out_benchmark['DCF']['grid_in'].sum() - out['DCF']['grid_in'].sum())" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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0qhevbravGrVquHOnTtq86ysrFCxYkU0bNgQy5cvh7Gxsc5nvaKionD//n14eHjA2NgYxsbGOHToEBYsWABjY2NkZ2erxf/+++949uwZBg4cqLU+Z2dnVK1aFZ07d8aPP/6IJUuWID4+/j9sNRERERFR4TI2dAPo/dC4cWPExMSozfv777/h5uaW53I5OTlIT0/XWtaqVStcuHBBbd7gwYNRtWpVTJo0CUZGRmply5cvR+fOneHg4PDa9ubk5ACAznUTEREREb0LmJBRvowfPx6NGjXCzJkz0atXL5w6dQo//fQTfvrpJwBAWloaZsyYgc6dO6N06dJ48OABFi1ahHv37qFnz55a67SxsUHNmjXV5llZWcHe3l5j/vXr13H48GHs3r1bo57du3cjMTERnp6esLa2xqVLlzBx4kQ0btwY5cuX188OICIiIiIqBLxlkfLF09MTW7duxW+//YaaNWviyy+/xLx589C/f38AgJGREa5evQo/Pz9UrlwZnTp1wsOHD3HkyBHUqFFDqqdFixYYNGhQgde/YsUKlC1bFm3atNEos7CwwM8//4wmTZqgWrVqGD9+PDp37oydO3e+8fYSEREREb0NHIdMT4r6OGT64ubmhunTp79RUkZERERE9D7gOGT0Trp06RJsbW11dspBRERERFTc8Bkyemtq1KiBv/76y9DNICIiIiJ6Z/AKGRERERERkYEwISMiIiIiIjIQ3rJIBpeRkaGzTC6Xw9jYOF+xMpkMJiYmbxSbmZkJXf3bFFYsAJiamr5RbFZWljTW2n+NNTExgUwmK9TY7OxsjYG+3zTW2NgYcrn8jWJfHduOiIiIyNCYkJHBzZo1S2dZpUqV0K9fP2n622+/RWZmptZYNzc3td4b58+fj2fPnmmNdXFxwbBhw6TpRYsWISUlRWusg4MDRo4cKU3//PPPSEpK0hpra2uLcePGSdOrVq1CXFyc1lhLS0tMnDhRml67di1u376tNdbExASffvqpNL1x40Zcu3ZNaywAhIaGSv/funUrLl++rDM2JCRESuB27tyJ8+fP64ydMGECrKysAAD79u3DmTNndMaOHTsWdnZ2AICIiAhERkbqjA0MDISjoyMA4MiRIzh06JDO2KFDh6JMmTIAgBMnTiA8PFxnrL+/vzQWXVRUFBo0aKAzloiIiMgQmJAVEdOnTzd0EwrFtWvX8r1tt2/fzndsXFxcvmOTkpKK7P59I+uUV7Jwvz2APBKcPyoAJsnK/ye1BtBYd+yumoDZv0nuwxYAWuiO3dcAMP83yX3cCIDm2HSS8JaA5S3l/5M9geundce+y/pxdBIiIqKiiuOQ6YmhxyFjwvD2hYSEaMwrFrcs/qa8BTArxwg5eTyGaiLLgkym3J5sYYRsoZ9YY1kW5G8UK4eRTPe2vdOYkBEREb1XCpIb8AoZ0RvKnfTokjs502ds7ufqDBYrzwag+/mt3Ixk2TCSGTr2PU3GiIiIqEhjL4tEREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgTAhIyIiIiIiMhAmZERERERERAbChIyIiIiIiMhAmJAREREREREZCBMyIiIiIiIiAzF4Qnbv3j383//9H+zt7WFhYYFatWrhzJkzUrkQAlOnTkXp0qVhYWEBHx8fXLt2Ta2OR48eoX///lAoFLCzs0NAQACePn2qFvPXX3+hadOmMDc3h6urK2bPnq3Rlk2bNqFq1aowNzdHrVq1sHv37sLZaCIiIiIiIhg4IXv8+DEaN24MExMT7NmzB5cvX8Z3332HEiVKSDGzZ8/GggULsHTpUpw8eRJWVlbw9fXFixcvpJj+/fvj0qVLCAsLw86dO3H48GEMHz5cKk9NTUWbNm3g5uaGqKgozJkzB9OmTcNPP/0kxRw/fhx9+/ZFQEAAzp07h65du6Jr1664ePHi29kZRERERERU7MiEEMJQK588eTKOHTuGI0eOaC0XQsDFxQUff/wxJkyYAABISUmBk5MTVq1ahT59+uDKlSuoXr06Tp8+jfr16wMA9u7di/bt2+Off/6Bi4sLlixZgs8++wwJCQkwNTWV1r1t2zZcvXoVANC7d2+kpaVh586d0vobNmwId3d3LF269LXbkpqaCltbW6SkpEChUPyn/fImpk+f/tbXWdyFhoYaugmGsU5m6BYUP/0M9jFNREREb6AguYFBr5Bt374d9evXR8+ePeHo6Ii6devi559/lspjY2ORkJAAHx8faZ6trS28vLwQGRkJAIiMjISdnZ2UjAGAj48P5HI5Tp48KcU0a9ZMSsYAwNfXFzExMXj8+LEUk3s9qhjVel6Vnp6O1NRUtRcREREREVFBGDQhu3nzJpYsWYJKlSph3759CAwMxJgxY7B69WoAQEJCAgDAyclJbTknJyepLCEhAY6OjmrlxsbGKFmypFqMtjpyr0NXjKr8VbNmzYKtra30cnV1LfD2ExERERFR8WbQhCwnJwceHh6YOXMm6tati+HDh2PYsGH5ukXQ0EJCQpCSkiK97t69a+gmERERERHRe8agCVnp0qVRvXp1tXnVqlXDnTt3AADOzs4AgMTERLWYxMREqczZ2Rn3799XK8/KysKjR4/UYrTVkXsdumJU5a8yMzODQqFQexERERERERWEQROyxo0bIyYmRm3e33//DTc3NwBAhQoV4OzsjIiICKk8NTUVJ0+ehLe3NwDA29sbycnJiIqKkmL279+PnJwceHl5STGHDx9GZmamFBMWFoYqVapIPTp6e3urrUcVo1oPERERERGRvhk0IRs/fjxOnDiBmTNn4vr161i3bh1++uknBAUFAQBkMhnGjRuHr776Ctu3b8eFCxcwcOBAuLi4oGvXrgCUV9Tatm2LYcOG4dSpUzh27BhGjRqFPn36wMXFBQDQr18/mJqaIiAgAJcuXcKGDRswf/58BAcHS20ZO3Ys9u7di++++w5Xr17FtGnTcObMGYwaNeqt7xciIiIiIioejA25ck9PT2zduhUhISH44osvUKFCBcybNw/9+/eXYj755BOkpaVh+PDhSE5ORpMmTbB3716Ym5tLMWvXrsWoUaPQqlUryOVy+Pn5YcGCBVK5ra0t/vzzTwQFBaFevXooVaoUpk6dqjZWWaNGjbBu3TpMmTIFn376KSpVqoRt27ahZs2ab2dnEBERERFRsWPQcciKEo5DVvxwHDJ6azgOGRER0XvlvRmHjIiIiIiIqDhjQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgTAhIyIiIiIiMhAmZERERERERAbChIyIiIiIiMhAmJAREREREREZCBMyIiIiIiIiA2FCRkREREREZCBMyIiIiIiIiAyECRkREREREZGBMCEjIiIiIiIyECZkREREREREBsKEjIiIiIiIyECYkBERERERERkIEzIiIiIiIiIDYUJGRERERERkIEzIiIiIiIiIDIQJGRERERERkYEwISMiIiIiIjIQJmREREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiI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ygr+/v744osvpJgKFSpg165dGD9+PObPn4+yZcti2bJlUjIGAL1790ZSUhKmTp2KhIQEuLu7Y+/evflOxojo/ZA7eTBUbO4k6n2IzZ2kGixWng1A9/NbuRnJsmEkM3Tse5qMERGRQRj0CllRwitkxQ+vkBEVsvdozLsig1fIiIj04r0ah4yIiIiIiKi4YkJGRERERERkIEzIiIiIiIiIDIQJGRERERERkYEwISMiIiIiIjIQJmREREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgegtITt79iw6duyor+qIiIiIiIiKvAIlZPv27cOECRPw6aef4ubNmwCAq1evomvXrvD09EROTk6hNJKIiIiIiKgoMs5v4PLlyzFs2DCULFkSjx8/xrJly/D9999j9OjR6N27Ny5evIhq1aoVZluJiIiIiIiKlHxfIZs/fz6++eYbPHjwABs3bsSDBw+wePFiXLhwAUuXLmUyRkREREREVED5Tshu3LiBnj17AgC6d+8OY2NjzJkzB2XLli20xhERERERERVl+U7Inj9/DktLSwCATCaDmZkZSpcuXWgNIyIiIiIiKury/QwZACxbtgzW1tYAgKysLKxatQqlSpVSixkzZoz+WkdERERERFSE5TshK1euHH7++Wdp2tnZGb/++qtajEwmY0JGRERERESUT/lOyG7dulWIzSAiIiIiIip+9DYwNBERERERERVMvq+QBQcHa51va2uLypUro3v37jAzM9Nbw4iIiIiIiIq6fCdk586d0zo/OTkZ169fx+eff479+/ejXLlyemscERERERFRUZbvhOzAgQM6y1JTU9G/f39MnjwZ69at00vDiIiIiIiIijq9PEOmUCjw+eef49ixY/qojoiIiIiIqFjQW6cepUqVwqNHj/RVHRERERERUZGnt4TsxIkT+PDDD/VVHRERERERUZGX72fI/vrrL63zU1JSEBUVhZkzZyI0NFRvDSMiIiIiIirq8p2Qubu7QyaTQQihUVaqVCkEBwdj5MiRem0cERERERFRUZbvhCw2NlbrfIVCgRIlSuitQURERERERMVFvhMyNze3wmwHERERERFRsZPvTj1GjhyJp0+fStO//fYb0tLSpOnk5GS0b99ev60jIiIiIiIqwvKd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IqKirsAJ2bhx47B8+XIAymSsWbNm8PDwgKurKw4ePKjv9hERERERERVZBU7INm3ahDp16gAAduzYgVu3buHq1asYP348PvvsM703kIiIiIiIqKgqcEL28OFDODs7AwB2796Nnj17onLlyhgyZAguXLig9wYSEREREREVVQVOyJycnHD58mVkZ2dj7969aN26NQDg2bNnHBiaiIiIiIioAPLdy6LK4MGD0atXL5QuXRoymQw+Pj4AgJMnT3IcMiIiIiIiogIocEI2bdo01KxZE3fv3kXPnj1hZmYGADAyMsLkyZP13kAiIiIiIqKiqsAJGQD06NFDY56/v/9/bgwREREREVFxUuBnyADg0KFD6NSpEypWrIiKFSuic+fOOHLkiL7bRkREREREVKQVOCFbs2YNfHx8YGlpiTFjxmDMmDGwsLBAq1atsG7dusJoIxERERERUZFU4FsWZ8yYgdmzZ2P8+PHSvDFjxuD777/Hl19+iX79+um1gUREREREREVVga+Q3bx5E506ddKY37lzZ8TGxuqlUURERERERMVBgRMyV1dXREREaMwPDw+Hq6urXhpFRERERERUHBT4lsWPP/4YY8aMQXR0NBo1agQAOHbsGFatWoX58+frvYFERERERERFVYETssDAQDg7O+O7777Dxo0bAQDVqlXDhg0b0KVLF703kIiIiIiIqKh6o3HIunXrhm7duum7LURERERERMVKgZ8hO336NE6ePKkx/+TJkzhz5oxeGkVERERERFQcFDghCwoKwt27dzXm37t3D0FBQXppFBEREVFxcOUe0Pk7wHYoYDUE8PwcuPMg72Xm7QGqTAAsBgGuo4HxvwIvMl6WLwkHak8GFAHKl3cosCdavY4biUC3uYDDCGVMrwVAYoq+t47eplmzZsHT0xM2NjZwdHRE165dERMToxZz48YNdOvWDQ4ODlAoFOjVqxcSExPzrPfJkycYN24c3NzcYGFhgUaNGuH06dNqMTKZTOtrzpw5GvWlp6fD3d0dMpkM0dHR/3m7i4ICJ2SXL1+Gh4eHxvy6devi8uXLemkUERERUVF3IxFo8gVQtTRwcArw1yzg866AuYnuZdYdAyZvAEK7AVfmAMuHARtOAJ9ufBlTtiTwdR8gagZw5ivgoxpAl++BS/8oy9NeAG2+BmQA9n8KHAsFMrKATt8COTmFucVUmA4d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pmXLlhqdcWhz//59DBw4EPHx8bC1tUXt2rWxb98+tG6tHBFx7ty5kMvl8PPzQ3p6Onx9fbF48csHQ42MjLBz504EBgbC29sbVlZW8Pf3xxdffCHFVKhQAbt27cL48eMxf/58lC1bFsuWLZPGIAOA3r17IykpCVOnTkVCQgLc3d2xd+9ejY4+iIiIiIiI9KnA45D9+uuv6NmzJ8zNzQurTe8ljkNW/LwPD4kSERHRu4Pna2+foc7XCnUcsgEDBrxxw4iIiIiIiOilfCVk3bt3z3eFW7ZseePGEBERERERFSf5SshsbW0Lux1ERERERETFTr4SspUrlQMFCiFw9+5dODg4wMLColAbRkREREREVNTJXx/ykhACFStWxD///FNY7SEiIiIiIio2CpSQyeVyVKpUCQ8fPiys9hARERERERUbBUrIAODrr7/GxIkTcfHixcJoDxERERERUbFR4G7vBw4ciGfPnqFOnTowNTXVeJbs0aNHemscERERERFRUVbghGzevHmF0AwiIiIiIqLip8AJmb+/f2G0g4iIiIiIqNgpcEKW24sXL5CRkaE2T6FQ/KcGERERERERFRcF7tQjLS0No0aNgqOjI6ysrFCiRAm1FxEREREREeVPgROyTz75BPv378eSJUtgZmaGZcuWYfr06XBxccEvv/xSGG0kIiIiIiIqkgp8y+KOHTvwyy+/oEWLFhg8eDCaNm2KihUrws3NDWvXrkX//v0Lo51ERERERERFToGvkD169AgffPABAOXzYqpu7ps0aYLDhw/rt3VERERERERFWIETsg8++ACxsbEAgKpVq2Ljxo0AlFfO7Ozs9No4IiIiIiKioqzACdngwYNx/vx5AMDkyZOxaNEimJubY/z48Zg4caLeG0hERERERFRUFfgZsvHjx0v/9/HxwdWrVxEVFYWKFSuidu3aem0cERERERFRUfafxyFzc3ODm5ubvtpDRERERERUbBT4lsXs7Gx8+eWXKFOmDKytrXHz5k0AwOeff47ly5frvYFERERERERFVYETshkzZmDVqlWYPXs2TE1Npfk1a9bEsmXL9No4IiIiIiKioqzACdkvv/yCn376Cf3794eRkZE0v06dOrh69apeG0dERERERFSUFTghu3fvHipWrKgxPycnB5mZmXppFBERERERUXFQ4ISsevXqOHLkiMb833//HXXr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IiIiA2FCRkREREREZCBMyIiIiIiIiAyECRkREREREZGBMCEjIiIiIiIyECZkREREREREBsKEjIiIiIiIyECYkBERERERERkIEzIiIiIiIiIDYUJGRERERERkIEzIiIiIiIiIDIQJGRERERERkYEwISMiIiIiIjIQJmREREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgTAhIyIiIiIiMhAmZERERERERAbChIyIiIiIiMhAmJAREREREREZCBMyIiIiIiIiA2FCRkREREREZCBMyIiIiIiIiAyECRkREREREZGBMCEjIiIiIiIyECZkREREREREBsKEjIiIiIiIyECYkBERERERERkIEzIiIiIiIiIDYUJGRERERERkIAZNyA4fPoxOnTrBxcUFMpkM27ZtUysXQmDq1KkoXbo0LCws4OPjg2vXrqnFPHr0CP3794dCoYCdnR0CAgLw9OlTtZi//voLTZs2hbm5OVxdXTF79myNtmzatAlVq1aFubk5atWqhd27d+t9e4mIiIiIiHIzaEKWlpaGOnXqYNGiRVrLZ8+ejQULFmDp0qU4efIkrKys4OvrixcvXkgx/fv3x6VLlxAWFoadO3fi8OHDGD58uFSempqKNm3awM3NDVFRUZgzZw6mTZuGn376SYo5fvw4+vbti4CAAJw7dw5du3ZF165dcfHixcLbeCIiIiIiKvaMDbnydu3aoV27dlrLhBCYN28epkyZgi5dugAAfvnlFzg5OWHbtm3o06cPrly5gr179+L06dOoX78+AOCHH35A+/bt8e2338LFxQVr165FRkYGVqxYAVNTU9SoUQPR0dH4/vvvpcRt/vz5aNu2LSZOnAgA+PLLLxEWFoaFCxdi6dKlb2FPEBERERFRcfTOPkMWGxuLhIQE+Pj4SPNsbW3h5eWFyMhIAEBkZCTs7OykZAwAfHx8IJfLcfLkSSmmWbNmMDU1lWJ8fX0RExODx48fSzG516OKUa1Hm/T0dKSmpqq9iIiIiIiICuKdTcgSEhIAAE5OTmrznZycpLKEhAQ4OjqqlRsbG6NkyZJqMdrqyL0OXTGqcm1mzZoFW1tb6eXq6lrQTSQiIiIiomLunU3I3nUhISFISUmRXnfv3jV0k4iIiIiI6D3zziZkzs7OAIDExES1+YmJiVKZs7Mz7t+/r1aelZWFR48eqcVoqyP3OnTFqMq1MTMzg0KhUHsREREREREVxDubkFWoUAHOzs6IiIiQ5qWmpuLkyZPw9vYGAHh7eyM5ORlRUVFSzP79+5GTkwMvLy8p5vDhw8jMzJRiwsLCUKVKFZQoUUKKyb0eVYxqPURERERERIXBoAnZ06dPER0djejoaADKjjyio6Nx584dyGQyjBs3Dl999RW2b9+OCxcuYODAgXBxcUHXrl0BANWqVUPbtm0xbNgwnDp1CseOHcOoUaPQp08fuLi4AAD69esHU1NTBAQE4NKlS9iwYQPmz5+P4OBgqR1jx47F3r178d133+Hq1auYNm0azpw5g1GjRr3tXUJERERERMWIQbu9P3PmDFq2bClNq5Ikf39/rFq1Cp988gnS0tIwfPhwJCcno0mTJti7dy/Mzc2lZdauXYtRo0ahVatWkMvl8PPzw4IFC6RyW1tb/PnnnwgKCkK9evVQqlQpTJ06VW2sskaNGmHdunWYMmUKPv30U1SqVAnbtm1DzZo138JeICIiIiKi4komhBCGbkRRkJqaCltbW6SkpBjkebLp06e/9XUWd6GhoYZuAhEREb1HeL729hnqfK0gucE7+wwZERERERFRUceEjIiIiIiIyECYkBERERERERkIEzIiIiIiIiIDYUJGRERERERkIEzIiIiIiIiIDIQJGRERERERkYEwISMiIiIiIjIQJmREREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgTAhIyIiIiIiMhAmZERERERERAbChIyIiIiIiMhAmJAREREREREZCBMyIiIiIiIiA2FCRkREREREZCBMyIiIiIiIiAyECRkREREREZGBMCEjIiIiIiIyECZkREREREREBsKEjIiIiIiIyECYkBERERERERkIEzIiIiIiIiIDYUJGRERERERkIEzIiIiIiIiIDIQJGRERERERkYEwISMiIiIiIjIQJmREREREREQGwoSMiIiIiIjIQJiQERERERERGQgTMiIiIiIiIgNhQkZERERERGQgTMiIiIiIiIgMhAkZERERERGRgTAhIyIiIiIiMhAmZERERERERAbChIyIiIiIiMhAmJAREREREREZCBMyIiIiIiIi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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## create a waterfall chart. Thanks for the great module provided by the waterfall_ax team! Very handy\n", "from waterfall_ax import WaterfallChart\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "import matplotlib.pyplot as plt\n", "\n", "# Cumulative values\n", "step_names = ['Start: grid supply only', 'savings PV', 'battery: savings supply','and grid fees']\n", "step_values = [start, with_pv, with_pv-saving_supply, with_pv-saving_supply-saving_grid]\n", "last_step_label = 'Total'\n", "color_kwargs = {\n", " 'c_bar_pos': 'lightgreen',\n", " 'c_bar_neg': 'orange',\n", " 'c_bar_start': 'grey',\n", " 'c_bar_end': 'grey',\n", " 'c_text_pos': 'black', \n", " 'c_text_neg': 'black',\n", " 'c_text_start': 'black',\n", " 'c_text_end': 'black'\n", "}\n", "# Plot\n", "waterfall = WaterfallChart(step_values, step_names=step_names, last_step_label=last_step_label)\n", "wf_ax = waterfall.plot_waterfall(title='Reducing power costs with own PV and battery', color_kwargs=color_kwargs)\n", "plt.ylabel('yearly costs in EUR')\n", "wf_ax.get_yaxis().set_visible(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "... that was it! No rocket science, as you see." ] } ], "metadata": { "kernelspec": { "display_name": "cvxpy16", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" } }, "nbformat": 4, "nbformat_minor": 2 }